package com.bifrost.service;

import com.bifrost.common.base.ServerResponse;
import com.bifrost.entity.User;
import com.bifrost.model.param.UserParam;

import java.util.List;

/**
 * Author by yanxiaobo
 * Date on 2018/4/10$.
 */
public interface AdminUserService {
    /**
     * 新增后台用户,同时给用户分配角色
     * @param user
     * @param merchantStoreIds
     * @return
     */
    ServerResponse add(UserParam userParam, Integer[] roleIds, Long[] merchantStoreIds);

    /**
     * 删除用户
     * @param userId 要删除的用户对应的id（不可以为空）
     * @return
     */
    ServerResponse batchDelete(Integer[] userId);

    /**
     * 更新用户信息,同时更新用户相关的角色信息
     * @param userParam
     * @param roleIds 该用户对应的角色
     * @return
     */
    ServerResponse update(UserParam userParam, Integer[] roleIds, Long[] merchantStoreIds, User currentUser);


    /**
     * 获取用户列表
     * @param currentPage 当前要显示页面的页码
     * @param pageSize 一页显示多少条数据
     * @param storeCode
     * @return
     */
    ServerResponse list(Integer currentPage, Integer pageSize, String userName, String storeCode);

    /**
     * 获取用户详情
     * @param userId
     * @return
     */
    ServerResponse getDetail(Integer userId);

    /**
     * 根据用户名查询用户
     * @param userName
     * @return
     */
    ServerResponse select(Integer currentPage, Integer pageSize, String userName);

    String updatePassword(String adminName, String oldPassword, String newPassword, User currentUser);

    String resetPassword(Long adminId, String defaultPassword, User currentUser);

    List<User> findUserByMerchantId(Long merchantId);

    User findUserByCode(String code);

    User findById(Long userId);
}
